using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;

namespace Atechnology.glassCAD.Shapes.CutViewer
{
    public class Tip : IGeometry
    { 
        private bool enabled = true;

        public bool Enabled
        {
            get { return enabled; }
            set { enabled = value; }
        }

        private PointF location;

        public PointF Location
        {
            get { return location; }
            set { location = value; }
        }

        private string text;

        public string Text
        {
            get { return text; }
            set { text = value; }
        }

        private Font font;

        public Font Font
        {
            get { return font; }
            set { font = value; }
        }

        internal Tip()
        {
            font = new Font("Arial", 12);
            text = "";
            location = new PointF(0, 0);
        }

        #region IGeometry Members

        public void Draw(System.Drawing.Graphics g, System.Drawing.RectangleF modelBoundingBox, int screenWidth, int screenHeight, IDrawVisitor drawVisitor)
        {
            drawVisitor.Visit(this, g, modelBoundingBox, screenWidth, screenHeight);
            //PointF screenCoords = CoordinateConverter.ModelToScreen(location, modelBoundingBox, screenWidth, screenHeight);
            //Brush brush;
            //if(tipPen != null)
            //    brush = new SolidBrush(tipPen.Color);
            //else
            //    brush = new SolidBrush(pen.Color);
            //g.DrawString(text, font, brush, screenCoords);
            //brush.Dispose();
        }

        public System.Drawing.RectangleF BoundingBox
        {
            get { throw new Exception("The method or operation is not implemented."); }
        }

        #endregion

        #region IGeometry Members


        public void Update()
        {
            throw new Exception("The method or operation is not implemented.");
        }

        Tip IGeometry.Tip
        {
            get { return null; }
        }

        #endregion

        #region IGeometry Members


        public bool DrawBoundingBox
        {
            get
            {
                throw new Exception("The method or operation is not implemented.");
            }
            set
            {
                throw new Exception("The method or operation is not implemented.");
            }
        }

        #endregion
    }
}
